/*
#include <math.h>
#include <algorithm>
#include <string>
#include <map>
#include <hash_map>
#include <set>
#include <vector>
#include <Stack>
#include <iostream>
#include <sstream>
using namespace std;

vector<vector<int>>loadData(int m,int n){
	vector<vector<int>>re;
	int tmp;
	FILE *fp=freopen("data.txt","r",stdin);
	for(int i=0;i<m;i++){
		vector<int>row;
		for(int k=0;k<n;k++){
			fscanf(fp,"%d",&tmp);
			row.push_back(tmp);
		}
		re.push_back(row);
	}
	return re;
}
void setZeroes(vector<vector<int>>& matrix) {
	bool firstrow = false;
	bool firstcolumn = false;

	for(int i=0; i<matrix.size(); i++) {
		if(!matrix[i][0]) {
			firstcolumn = true;
		}
	}

	for(int j=0; j<matrix[0].size(); j++) {
		if(!matrix[0][j]) {
			firstrow = true;
		}
	}

	for(int i=1; i<matrix.size(); i++) {
		for(int j=1; j<matrix[0].size(); j++) {
			if(!matrix[i][j]) {
				matrix[i][0] = 0;
				matrix[0][j] = 0;
			}
		}
	}

	for(int i=1; i<matrix.size(); i++) {
		if(!matrix[i][0]) {
			for(int j=1; j<matrix[0].size(); j++) {
				matrix[i][j] = 0;
			}
		}
	}

	for(int j=1; j<matrix[0].size(); j++) {
		if(!matrix[0][j]) {
			for(int i=1; i<matrix.size(); i++) {
				matrix[i][j] = 0;
			}
		}
	}

	if(firstrow) {
		for(int j=0; j<matrix[0].size(); j++) {
			matrix[0][j] = 0;
		}
	}

	if(firstcolumn) {
		for(int i=0; i<matrix.size(); i++) {
			matrix[i][0] = 0;
		}
	}
}
int main(){
	vector<vector<int>>data=loadData(2,3);
	setZeroes(data);
	cout<<endl;
	system("pause");
	return 0;
}*/